package com.neusoft.SPNursingHome.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.util.Date;

/**
 * 客户退住申请与审核记录实体类
 */
@TableName("check_out_record")
public class CheckOutRecord {
    /**
     * 退住记录ID (主键)
     */
    @TableId(value = "check_out_id", type = IdType.AUTO)
    private Integer checkOutId;

    /**
     * 客户ID (外键)
     */
    private Integer clientId;

    /**
     * 退住时间
     */
    private Date checkOutTime;

    /**
     * 退住原因
     */
    private String checkOutReason;

    /**
     * 退住类型 (正常/死亡/保留床位)
     */
    private String checkOutType;

    /**
     * 审核状态 (已提交/通过/不通过)
     */
    private String checkOutReviewStatus;

    /**
     * 审核时间
     */
    private Date checkOutReviewTime;

    /**
     * 审批人ID (外键)
     */
    private Integer adId;

    /**
     * 审批人描述
     */
    private String checkOutDescription;
    // ------------------- 以下为非数据库表字段 -------------------
    // 客户姓名，用于连表查询显示
    @TableField(exist = false)
    private String clientName;

    // 构造函数
    public CheckOutRecord() {
    }

    // Getters 和 Setters
    public Integer getCheckOutId() {
        return checkOutId;
    }

    public void setCheckOutId(Integer checkOutId) {
        this.checkOutId = checkOutId;
    }

    public Integer getClientId() {
        return clientId;
    }

    public void setClientId(Integer clientId) {
        this.clientId = clientId;
    }

    public Date getCheckOutTime() {
        return checkOutTime;
    }

    public void setCheckOutTime(Date checkOutTime) {
        this.checkOutTime = checkOutTime;
    }

    public String getCheckOutReason() {
        return checkOutReason;
    }

    public void setCheckOutReason(String checkOutReason) {
        this.checkOutReason = checkOutReason;
    }

    public String getCheckOutType() {
        return checkOutType;
    }

    public void setCheckOutType(String checkOutType) {
        this.checkOutType = checkOutType;
    }

    public String getCheckOutReviewStatus() {
        return checkOutReviewStatus;
    }

    public void setCheckOutReviewStatus(String checkOutReviewStatus) {
        this.checkOutReviewStatus = checkOutReviewStatus;
    }

    public Date getCheckOutReviewTime() {
        return checkOutReviewTime;
    }

    public void setCheckOutReviewTime(Date checkOutReviewTime) {
        this.checkOutReviewTime = checkOutReviewTime;
    }

    public Integer getAdId() {
        return adId;
    }

    public void setAdId(Integer adId) {
        this.adId = adId;
    }

    public String getCheckOutDescription() {
        return checkOutDescription;
    }

    public void setCheckOutDescription(String checkOutDescription) {
        this.checkOutDescription = checkOutDescription;
    }

    public String getClientName() {
        return clientName;
    }

    public void setClientName(String clientName) {
        this.clientName = clientName;
    }

    @Override
    public String toString() {
        return "CheckOutRecord{" +
                "checkOutId=" + checkOutId +
                ", clientId=" + clientId +
                ", checkOutTime=" + checkOutTime +
                ", checkOutReason='" + checkOutReason + '\'' +
                ", checkOutType='" + checkOutType + '\'' +
                ", checkOutReviewStatus=" + checkOutReviewStatus +
                ", checkOutReviewTime=" + checkOutReviewTime +
                ", adId=" + adId +
                ", checkOutDescription='" + checkOutDescription + '\'' +
                '}';
    }
}

